昨天講完如何在Swift中呼叫C函式,今天就來手把手教學如何在Swift中呼叫C++函式吧!
首先,新增一個C++ 檔案
命名完後一樣要將Also create a header file打勾
建立好C++ 檔案後,就來把函式及標頭檔都宣告完畢吧!
//header
class CPPTest{
public:
void helloCPP();
};
//cpp
void CPPTest::helloCPP(){
printf("Hello cpp!");
}
由於Swift並不能直接呼叫C++ 檔案,這時需要使用Objective-C ++ 來呼叫C++ 檔案
都建立好之後呢,要記得把建立的.m檔,副檔名改為.mm檔
並且在.mm檔中import剛剛寫好的.hpp檔
#import "ObjcTest.h"
#import "CPPTest.hpp"
@implementation ObjcTest
-(void)helloCPP{
CPPTest cppTest;
cppTest.helloCPP();
}
@end
在Objective-C ++ 的header檔中宣告
-(void)helloCPP;
最後,在你的Bridging Header中import Objective-C++ 的header檔,就能成功在Swift呼叫C++ 程式碼囉!
另外,還有一個不用那麼麻煩的方法,可以在你的c++檔案裡使用extern "C",但前提是你宣告的函式要在別處已被定義
extern "C" void helloCPP(){
return CPPTest().helloCPP();
}
並且在Brigding Header裡面宣告此函式
void helloCPP();
如此一來,也可以成功呼叫C++檔案唷!還不用透過Objective-C ++來呼叫,可以節省不少麻煩(?